~~ Context: DBNAME=HUTT, db_unique_name=HUTTPRD, instances HUTT1/HUTT2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~ NOTE: the procedure is identical to creating a non CDB database
~~ the ONLY difference is enable_pluggable_database=true parameter in init.ora

mkdir -p /app/base/admin/HUTTPRD
cd /app/base/admin/HUTTPRD
mkdir scripts divers adump init diag

~~~~~~~~~~~~
initHUTT.ora
~~~~~~~~~~~~
*.enable_pluggable_database=true
*.cluster_database=false
*.db_name=HUTT
*.db_unique_name=HUTTPRD
*.compatible=19.0.0
*.control_files=(+DATA/HUTTPRD/control01.ctl,+DATA/HUTTPRD/control02.ctl)
*.db_create_file_dest=+DATA
*.db_create_online_log_dest_1=+DATA
*.db_recovery_file_dest_size=4G
*.db_recovery_file_dest=+RECO
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST'
*.log_archive_format=%t_%s_%r.arc
*.db_block_size=8192
*.open_cursors=300
*.diagnostic_dest=/app/base/admin/HUTTPRD
*.sga_max_size=3G
*.sga_target=3G
*.pga_aggregate_target=512M
*.pga_aggregate_limit=2G
*.processes=350
*.audit_file_dest=/app/base/admin/HUTTPRD/adump
*.audit_trail=db
*.remote_login_passwordfile=exclusive
HUTT1.instance_number=1
HUTT2.instance_number=2
HUTT1.thread=1
HUTT2.thread=2
HUTT1.undo_tablespace=UNDOTBS1
HUTT2.undo_tablespace=UNDOTBS2


~~~~

startup nomount pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora';

create database HUTT
datafile  size 700M  autoextend on next  64M
extent management local
SYSAUX datafile  size 512M autoextend on next  64M
default temporary tablespace TEMP tempfile size 256M autoextend off
undo tablespace UNDOTBS1 datafile  size 256M autoextend off 
character set AL32UTF8 
national character set AL16UTF16 
logfile group 1 size 64M,
        group 2 size 64M
user SYS identified by secret user SYSTEM identified by secret;

create undo tablespace UNDOTBS2 datafile size 256M autoextend off;
create tablespace USERS datafile size 32M autoextend ON next 32M;
alter database default tablespace USERS;


alter database add logfile thread 2 
  group 3  size 64M,
  group 4  size 64M;
 
alter database enable public thread 2; 

~~ create dictionary objects on CDB$ROOT
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/catclust.sql
@?/rdbms/admin/utlrp.sql

~~ open PDB$SEED in read/write mode and create dictionary objects on PDB$SEED
alter session set "_oracle_script"=true;
alter pluggable database PDB$SEED close immediate;
alter pluggable database PDB$SEED open;
alter session set "_oracle_script"=false;
alter session set container=PDB$SEED;
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/catclust.sql
@?/rdbms/admin/utlrp.sql
alter session set "_oracle_script"=true;
alter pluggable database PDB$SEED close immediate;
alter pluggable database PDB$SEED open read only;
alter session set "_oracle_script"=false;


~~ add cluster_database=true in init.ora and restart instance on 2 nodes
startup pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora';

~~ create spfile on ASM and create $ORACLE_HOME/dbs/initXXXXX.ora on both nodes
create spfile='+DATA/HUTTPRD/spfileHUTT.ora' from pfile='/mnt/yavin4/tmp/_oracle_/ad-hoc/initHUTT.ora';
echo "spfile='+DATA/HUTTPRD/spfileHUTT.ora'" > $ORACLE_HOME/dbs/initHUTT1.ora
echo "spfile='+DATA/HUTTPRD/spfileHUTT.ora'" > $ORACLE_HOME/dbs/initHUTT2.ora

~~ register DB in CRS
srvctl add database -d HUTTPRD -o /app/oracle/product/19 -p '+DATA/HUTTPRD/spfileHUTT.ora' 
srvctl add instance -d HUTTPRD -i HUTT1 -n vortex-db01
srvctl add instance -d HUTTPRD -i HUTT2 -n vortex-db02

~~ create passwordfile on ASM; if the DB is not yet registered on CRS, you will get a WARNING
orapwd FILE='+DATA/HUTTPRD/orapwHUTT' ENTRIES=10 DBUNIQUENAME='HUTTPRD' password=secret00!

~~ check database config in clusterware
srvctl config database -db HUTTPRD

~~ shutdown instances with SQL*Plus and start database with srvctl
srvctl start database -db HUTTPRD
srvctl status database -db HUTTPRD -v

~~ optionally, put database in archivelog mode
alter system set cluster_database=false scope=spfile sid='*';
alter system set db_recovery_file_dest_size=8G scope=both sid='*';
alter system set db_recovery_file_dest='+RECO' scope=both sid='*';
alter system set log_archive_dest_1 = 'location=USE_DB_RECOVERY_FILE_DEST' scope=both sid='*';

srvctl stop database -db HUTTPRD

startup mount exclusive
alter database archivelog;
alter database open;

srvctl stop database -db HUTTPRD
srvctl start database -db HUTTPRD

alter system archive log current;
